#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int N = 1e4+5;

int n,m,cnt,sp;
vector<pair<int,int>> adj[N];
vector<int> res;
int co[N],vis[N],e[N],sum[N];

void pfs(int u,int c){
	co[u]=c;
	vis[u] = 1;
	for(auto [v,i]:adj[u]){
		if(!vis[v]){
			e[i]=1;
			pfs(v,c%2+1);
		}else if(!e[i]){
			e[i]=1;
			if(co[v] == co[u]){
				cnt++;
				sum[u]++;
				sum[v]--;
				sp=i;
			}else{
				sum[u]--;
				sum[v]++;
			}
		}
	}
}

void dfs(int u){
	vis[u]=1;
	for(auto [v,i]:adj[u]){
		if(!vis[v]){
			dfs(v);
			if(sum[v]==cnt)res.push_back(i);
			sum[u]+=sum[v];
		}
	}
}

void solve(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v;
		cin>>u>>v;
		adj[u].push_back({v,i});
		adj[v].push_back({u,i});
	}
	for(int i=1;i<=n;i++){
		if(!vis[i])pfs(i,1);
	}

	if(!cnt){
		cout<<m<<'\n';
		for(int i=1;i<=m;i++){
			cout<<i<<' ';
		}
		return;
	}

	memset(vis,0,sizeof vis);
	for(int i=1;i<=n;i++){
		if(!vis[i])dfs(i);
	}

// 	cout<<cnt<<'\n';
// 	for(int i=1;i<=m;i++){
// 		cout<<sum[i]<<' ';
// 	}
// 	cout<<'\n';
	
	if(cnt==1)res.push_back(sp);
	sort(res.begin(),res.end());
	cout<<res.size()<<'\n';
	for(int x:res){
		cout<<x<<' ';
	}
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t=1;
    // cin>>t;
    while(t--){
        solve();
    }
    return 0;
}